package com.beauty.payment.repository;

import com.beauty.payment.entity.Payment;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

@Repository
public interface PaymentRepository extends JpaRepository<Payment, Long> {
    
    /**
     * 根据订单ID查询支付记录
     *
     * @param orderId 订单ID
     * @return 支付记录列表
     */
    List<Payment> findByOrderId(String orderId);
    
    /**
     * 根据订单ID和支付状态查询支付记录
     *
     * @param orderId 订单ID
     * @param status 支付状态
     * @return 支付记录
     */
    Optional<Payment> findByOrderIdAndStatus(String orderId, Payment.PaymentStatus status);
    
    /**
     * 根据交易ID查询支付记录
     *
     * @param transactionId 交易ID
     * @return 支付记录
     */
    Optional<Payment> findByTransactionId(String transactionId);
    
    /**
     * 根据支付方式查询支付记录
     *
     * @param paymentMethod 支付方式
     * @return 支付记录列表
     */
    List<Payment> findByPaymentMethod(String paymentMethod);
    
    /**
     * 根据客户ID查询支付记录
     * 
     * @param customerId 客户ID
     * @return 支付记录列表
     */
    List<Payment> findByCustomerId(String customerId);
    
    List<Payment> findByStatus(Payment.PaymentStatus status);
} 